
package cliente.mediador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import cliente.gui.GUIActualizarBaseDeDatos;
import cliente.gui.GUIArchivo;





public class MediadorArchivo implements ActionListener {
	static private final String newline = "\n";
	GUIActualizarBaseDeDatos guiActualizar=null;
	GUIArchivo archivo=null;


	public MediadorArchivo(){
		guiActualizar=new GUIActualizarBaseDeDatos();	
		archivo=new GUIArchivo();
		archivo.setActionListeners(this); 
		show(); 

	}

	private void show() {  	    	
		archivo.show();
	} 

	//ARREGLAR ESTO PORQUE HAY DRAMA

	public void actionPerformed(ActionEvent e){	   
		Object source = e.getSource();
		if (source==archivo.getAbrir()){
			int returnVal = guiActualizar.getShowDial();
			if (returnVal == JFileChooser.APPROVE_OPTION) {
	
				File file = guiActualizar.getSelecArchivo().getSelectedFile();

				//	                
				try{
					String ubicacion= String.valueOf(guiActualizar.getArchivo());
					/*Nuevamente fileChooser para indicarle donde esta el archivoBackUp*/
					Process child = Runtime.getRuntime().exec("cmd /c mysql --password=34711198 --user=root cliente < " + ubicacion);

				}catch(Exception e1){
					JOptionPane.showMessageDialog(null, "Error no se actualizo la DB por el siguiente motivo: " + e1.getMessage(), "Verificar",JOptionPane.ERROR_MESSAGE);
					e1.printStackTrace();
				}
				JOptionPane.showMessageDialog(null, "Base Actualizada", "Verificar",JOptionPane.INFORMATION_MESSAGE);
				//
				//This is where a real application would open the file.
				archivo.getTextArea().append("Opening: " + file.getName() + "." + newline);
			} else {
				archivo.getTextArea().append("Open command cancelled by user." + newline);
			}
			archivo.getTextArea().setCaretPosition(archivo.getTextArea().getDocument().getLength());   
		}else if(source==archivo.getGuardar()){
			
			try{
			Runtime runtime = Runtime.getRuntime();
			File backupFile = new File("C:/Users/German/Documents/BackUp.sql");
			/*backupFile se utiliza para indicarle la ubicacion y nombre del archivo que contendra el backup con la extencion .sql*/

			FileWriter fw = new FileWriter(backupFile);
			/*objeto que escribira sobre el backup archivo*/
			Process child = runtime.exec("C:\\Archivos de programa\\MySQL\\MySQL Server 5.5\\bin\\mysqldump --opt --password=34771198 --user=root < cliente>");
			/*Process es el que ejecuta el comando para buscar el mysqldump.exe*/
			InputStreamReader irs = new InputStreamReader(child.getInputStream());
			BufferedReader br = new BufferedReader(irs);
			/* se escribe sobre el archivo*/
			String line;
			while( (line=br.readLine()) != null ) {
			fw.write(line + "\n");
			}
			fw.close();
			irs.close();
			br.close();
			JOptionPane.showMessageDialog(null, "Archivo generado", "Verificar",JOptionPane.INFORMATION_MESSAGE); 
			}catch(Exception p){
				  System.err.println("error "+ p.getMessage());
			}
			
		}else if(source==archivo.getSalir()){
			archivo.dispose();
		}
	}





}
